home *** CD-ROM | disk | FTP | other *** search
-
- !Process
- ===========================
- 256 colour image processing
- by
- Henrik Bjerregaard Pedersen
-
-
- About !Process
- ================
- !Process is a 256-colour sprite processing/manipulation program.
- It enables you to manipulate 256-colour sprites in a variety of ways,
- including noise-removal, sharpening, smoothening, inverting, colour
- separation, conversion to black/white or greytones, edge-detection and more.
- Besides that, !Process also includes some of the features found in !Paint or
- other basic drawing packages.
-
- The following is only a brief summary of the features of !Process. The
- number of ways you can distort/alter/manipulate an image are endless, and
- would therefor require a RATHER large !Help-file to describe in details.
- The best (and most amusing) way to discover the possibilities in (and the
- limits of) !Process, is to load an image and simply try the different
- operations one by one. However, I strongly recommend that you read this file,
- otherwise you may have trouble with some of the features.
-
- Problems
- ==========
- Whenever possible, you should ensure that the images you load into Process
- are created without palette or mask, and that the spritefile contains only
- one sprite.
-
- Vocabulary
- ============
- Source image ... the image from which pixels/information is READ.
- Destination image ... the image to which pixels/information is WRITTEN.
- Colour component ... a value in the range 0-255, describing the amount of
- either RED, GREEN or BLUE. 0 is nothing, 255 is full.
- Kernel ... a 3x3 matrix which is multiplied with the colour
- components of a center pixel and its 8 neighbours.
- The average of the 9 elements of the kernel is
- calculated, and this becomes the colour of the center
- pixel.
- Image viewer ... any of the (from two to nine) image windows.
-
- Starting
- ==========
- Double click on the !Process-icon, and the program installs itself on the
- iconbar.
- !Process will claim approx. 160k as long as no image is loaded. After
- loading an image, the wimpslot will be increased with at least twice the size
- of the spritefile.
-
- Stopping
- ==========
- Select the option Quit from the iconbar menu.
- If you end up in an endless loop of error messages, you can in most cases
- exit the program by pressing DELETE while clicking on the OK icon in the
- error box.
-
- Loading
- =========
- Drag as spritefile containing a 256 colour sprite as the first sprite to the
- iconbar icon, and it will be loaded and will appear in a window.
- Click MENU when the mouse is inside this window, and the main menu appears.
- Process will also load AIM files, Clear files (in 256 greytones) and sprites
- with a 256 entry greyscaled palette.
- After applying a filter/effect the processed image will appear in another
- window. If you drag a spritefile to either of these windows, !Process will
- attempt to load the file, but will fail if the first sprite in the file isn't
- the same size and in the same mode as the original, or if the file has a
- different size than the original.
- Please note that !Process ignores the palette of the sprite, and simply uses
- the default 256 colour palette.
-
- Printing
- ==========
- This isn't what !Process is best at. In fact, it doesn't print at all, so
- what you'll need to do is to save the image (either to disc or directly to
- !Paint) and then use !Paints printing facilities in conjunction with a
- RISC OS PDriver to get your piece of art on paper.
-
- Greyscaled images
- ===================
- !Process accepts 3 types of greyscaled images:
-
- AIM (256x256 pixels, 8 bpp, always greyscaled)
- Clear (8 bpp, greyscaled palette)
- Sprites (with a palette with 256 greyscaled entries).
-
- Beside these, Process can convert any loaded colour sprite to 8 bpp
- greytones.
- Some of the operations provided by Process are meaningless when applied to
- a greyscaled image (eg RGB separation, Greyscale conversion etc.). In these
- cases the operation will be inaccesible/shaded in the menu.
-
- Options
- =========
- When started, !Process reads the systemvariable Process$Options which may
- contain the following options:
-
- Name Meaning
- -------------------------------------------------------------
- max2 Sets the number of copies of the image !Process
- max3 creates when a file is loaded.
- max4 etc Minimum is 2, maximum is 9. If you don't set max
- max9 or set it to an illegal value, max4 is used.
-
- swap Automatic swapping on.
-
- dma Disable DMA during lengthy calculations.
-
- tools Show toolbox.
-
- To perform RGB separation max4 is needed, to perform CMYK separation max5
- is needed.
-
- The system variable Process$WindowTitle holds the template string for the
- text in the titlebar of the image viewers.
- The variable is set in !Process.!Run, and may be altered to include any of
- the given pieces of information:
-
- Arg Substituted with
- --------------------------
- %%0 "Process"
- %%1 The name (full path) of the sprite file
- %%2 The name (last part) of the sprite file
- %%3 The name of the sprite
- %%4 The mode in which the sprite was created
- %%5 Size X of sprite (pixels)
- %%6 Size Y of sprite (pixels)
- %%7 The image viewer's number (1 - max)
- %%8 Zoom factor X
- %%9 Zoom factor Y
-
- Maps
- ======
- Maps are tables translating one colour to another. 256-colour images use one
- byte per pixel, so mapping is simply done using a 256-bytes table, so that a
- byte with value n is translated into the n'th entry in the table.
- Many of the operations in !Process are performed using maps, to name a few:
- Invert, Add colour, RGB filter, Translate, Greytones, Brighten, Stretch
- histogram, Equalize histogram, Expand/Reduce range etc.
- It is possible to create your own map and apply it to the loaded image. If
- you drag a 256-bytes Data-file (filetype &FFD) to any of the image viewers,
- the file will be loaded and used as a map on that particular image.
- You can edit the BASIC-program GenMap to suit your own purposes.
-
- The colour selector
- =====================
- The colour selector is a window that pops up whenever a selected operation
- needs a colour as input. The window contains three slidebars, Red, Green and
- Blue which can be used to select the colour, which will be shown to the right
- of the slidebars. The five icons at the bottom of the window are:
-
- Pick Click on this and you can select a colour by clicking
- SELECT in the source window.
- Black Sets all three slidebars to 0 (=black).
- White Sets all three slidebars to full (=white).
- Cancel Abort the operation/close the window.
- OK Apply the filter/effect/operation or close the window.
-
- If you click ADJUST on either of the slidebars, all three bars will be moved.
- The palette in the right side of the image can be used to select any of the
- 256 default colours used in 8 bpp modes.
-
- The grey value selector
- =========================
- This is exactly the same as the colour selector, except that you only use a
- single slidebar to select the colour/grey value.
-
- The windows
- =============
- The two main windows in !Process are the source and destination windows.
- The source window can be identified by the toolbox, the destination window
- by the pane window with the arrows.
-
- The toolbox
- =============
- The toolbox contains icons for various of the most frequently used
- operations, such as zoom, pan, copy image, set colour etc. Most operations
- can be aborted by selecting another operation or by clicking ADJUST on the
- selected icon. From top to bottom, left to right, the icons are:
-
- Select area
- -----------
- This works exactly as the menu option Misc.Image.Select area.
-
- Use selected area
- -----------------
- If this icon is set (slabbed inwards) only the selected area of the
- source image will be processed. If an area is selected and used,
- pressing MENU over this icon will open a window containing icons to
- control the selected area. These icons work in the same way as the
- sub menu to the menu option Image.Select area.
-
- Copy to destination
- -------------------
- This copies the source image (or the selected part of the source image)
- to the destination image.
-
- Copy from destination
- ---------------------
- The reverse of 'Copy to destination'.
-
- Calculate histogram
- -------------------
- Calculate and display the histogram of the source image.
-
- Open RGB colour selector
- ------------------------
-
- Swap images
- -----------
- Swap source and destination images.
-
- Zoom
- ----
- When this is selected, you can enlarge a portion of the image simply by
- dragging a box in the source image window. Click MENU over this icon to
- open a window with 8 preset zoom factors.
-
- Painting tools
- --------------
- Click MENU over this to reveal the 8 painting tools:
- Pencil
- Filled rectangle
- Rectangle
- Filled circle
- Circle outline
- Lines
- Flood fill
- Global replace
- Spraycan
- Triangle fill
- Triangle
- Parallelogram fill
- Parallelogram outline
- Ellipse fill
- Ellipse outline
- Smooth line
-
- Note that the painting tools write to the source image, NOT to the
- destination image.
-
- Pan
- ---
- Simple, really.
-
- The menus
- ===========
-
- The icon bar menu
- =================
-
- Info
- ----
- ...with the usual program info window.
-
- Views.Tidy
- ----------
- Tries ever so hard to tidy the image viewers.
-
- Views.----
- ----------
- A list of all the image viewers.
-
- Create image
- ------------
- Creates a new blank image.
-
- Drop file
- ---------
-
- Quit
- ----
-
-
- The main menu
- =============
-
- Miscellaneous.Options.Automatic swap
- ------------------------------------
- If this options is selected, the source and destination image will be
- swapped automatically after any operation has been applied to the image.
-
- Miscellaneous.Options.Disable DMA
- ---------------------------------
- If this option is selected, the sound and video DMA will be disabled
- while !Process is processing an image. In hi-res modes on an ARM2 this
- can increase processing-speed with as much 100% or more.
-
- Miscellaneous.Options.Show toolbox
- ----------------------------------
- If this option is selected, a toolbox will appear on the left side of the
- source image window, and a pane window appears on the left side of the
- destination image window.
-
- Miscellaneous.Options.Normal panning
- ------------------------------------
- Switches between the two different types of panning.
-
- Miscellaneous.Options.Display in greytones
- ------------------------------------------
- Displays the images (if they are in colour) in greytones.
- Greyscaled image can also be shown in colour, by deselecting this option.
-
- Miscellaneous.Edit pencil/spraycan
- ----------------------------------
- Select this to set the shape/size of the pencil tool or the size/
- intensity of the spraycan.
-
- Miscellaneous.Plot type
- -----------------------
- This enables you to select which plot action the painting tools should
- use. The default is Set, which means plot the selected colour. The other
- possible plot actions are:
- OR OR the colour in the image with the selected colour.
- AND AND ......
- EOR EOR ......
- Invert Invert the colour in the image (ignore the selected
- colour).
- Don't plot Speaks for itself, doesn't it?
- AND NOT AND the colour in the image with the inverse of the
- selected colour.
- OR NOT OR ......
- The plot type affects all the painting tools except Spraycan, Flood fill
- and Global replace.
-
- Miscellaneous.Reload last
- -------------------------
- This enables you to reload the last saved image (for that particular
- image viewer). In some cases you might experience an error like
- 'Not enough room in spritearea'. This will typically happen if the image
- you are trying to reload has a palette, as !Process stores the images
- without palette. There simply isn't room for the extra palette data.
-
-
- Image.Image info
- ----------------
- Leads to a window with image info.
-
-
- Image.Convert to greyscale
- --------------------------
- Converts the image to 256 greytones. This cannot be reversed.
-
- Image.Copy source image
- -----------------------
- Selecting this option will copy the source image to the destination
- image.
-
- Image.Select area
- -----------------
- This entry allows you to select a part of the image. Almost all
- operations on the image will only have effect in the selected area.
- Select the option, then click SELECT in one corner of the rectangle you
- wish to select and click SELECT again in the other corner.
- You can abort the cutting by clicking MENU.
- If an area already has been selected, it is possible to adjust the
- position/size of the area using the options in the sub-menu to this entry.
- Extend top/bottom/right/left will move to appropiate side of
- the rectangle to the top/bottom/right side/left side of the
- full image.
- Top/bottom/right/left neighbour will set the rectangle to an
- area with the same width/height as before, but positioned
- above/below/to the right of/to the left of the previous area,
- so that no pixels overlap.
-
- Image.Clear area
- ----------------
- This will reset the selected part of the image to the full image.
-
- Image.Use full image
- --------------------
- If this option is selected (ticked), the full image is be used.
-
- Image.Use selected area
- -----------------------
- If this option is selected, only the selected part of the image will be
- affected by the processing.
-
-
- Range.Reduce range
- ------------------
- This uses a simple algorithme to reduce the range of the colours in the
- source image. All colours are moved towards a boring greytone (red, green
- and blue = 128).
-
- Range.Expand range
- ------------------
- All colours are moved away from the greytone mentioned above.
-
- Range.Calculate histogram
- -------------------------
- This calculates and displays the colour histogram of the image.
- There will almost always be at least a small amount of both red, green
- and blue in all images, even after the image has been thru e.g. a blue
- filter. This is due to the fact that the bottom two bits of each byte is
- common to the three colour components.
-
- Range.Stretch
- -------------
- Stretches the colour range of the image. This will stretch a selected
- part of the colour histogram so that this part fills the entire range.
- If a colour component is outside the selected part it becomes either 0
- (if below) or 255 (=full, if above).
- Selecting a part of the histogram is done using the lowered rectangle
- below the histogram. Clicking ADJUST in this sets the upper limit,
- clicking SELECT sets the lower limit.
-
- Range.Equalize
- --------------
- Histogram equalisation. This will attempt to equalize the histogram so
- that there is a (roughly) equal number of pixels in each of the possible
- shades.
-
- Range.Transfer median
- ---------------------
- Calculates the mean colour of the image, and transfers it to the RGB
- colour selector. This is especially useful if you want to convert a
- colour image to greytones, as the mean colour will ensure a reasonably
- good conversion.
-
- Range.Colour correction
- -----------------------
- Uses one of three algorithems to perform colour-correction. The curve
- shows 'New colour' vs 'Old colour'.
-
- Gamma (Gamma-correction): Each colour-component is translated to a new
- colour using the formula: NewCol = (OldCol ^ Gamma)
- Gamma is set using the two up- and down-icons.
- Gamma-correction is particually useful on scanned/digitized images.
-
- P-lin: Basically the same as Gamma-corr. You can adjust the curve by
- clicking SELECT on it.
-
- Step: Allows you to control the translation of each RGB value to a new
- RGB-value.
-
-
- Process.Invert
- --------------
- This will invert the image, giving a negative image.
-
- Process.Remove TINT
- -------------------
- This simply removes the bottom two bits (the TINT part) of all pixels in
- the source image.
-
- Process.Brighten
- ----------------
- This adds a small amount to each of the colour components, giving a
- brighter image.
-
- Process.Darken
- --------------
- The reverse of Brighten.
-
- Process.Black & White
- ---------------------
- Converts the image to black and white. The colour components are weighted
- according to the selected colour, the median of the three components are
- calculated, and if this is above 50% intensity, the pixel becomes white
- otherwise it becomes black.
-
- Process.Greytones
- -----------------
- Converts the image to greytones. The colour components are weighted
- according to the selected colour, the median of the three components are
- calculated and this is used to select a greytone.
- The sensitivity of the eye is approx. 3:5:1 (red,green,blue).
-
- Process.Threshold
- -----------------
- Converts the image to black and white using thresholding.
- Thresholding means that any pixel with 2 or 3 colour components above the
- selected colour will become white, the rest will become black.
-
- Process.Add colour
- ------------------
- Adds an variable amount of colour to the red, green and blue colour
- components.
-
- Process.Sub colour
- ------------------
- The reverse of Add colour.
-
- Process.RGB filter
- ------------------
- This acts like a sort of coloured glass you put in front of the image.
- If the glass is blue, only the blue parts of the image will pass thru
- the glass.
-
- Process.Translate
- -----------------
- The colours in the destination image becomes a weighted sum of the
- colour components from the source image, eg:
- New RED = 30% Old RED + 60 % Old GREEN + 40% Old BLUE (etc.)
- Anything above 100% is cut off.
-
- Process.Shade
- -------------
- All colours are move towards the selected colour. How much they are
- moved is set using the Effect slidebar in the colour selector.
-
- Process.Isolate
- ---------------
- This will turn all pixel black, except for those that are in the same
- colour as the selected colour (these are turned white).
-
- Process.RGB separation.True colour
- ----------------------------------
- Process.RGB separation.8 bit per pixel
- --------------------------------------
- Works only if you've got 4 (or more) copies of the image.
- Creates three copies of the source image, one with the red part of the
- image, one with the green part and one with the blue part.
- Actually, two version of this routine is available.
- 'True colour' will give you a red, a green and a blue image.
- '8 bit per pixel' will give you three very ugly ill-looking images. These
- images have 256 levels of red/green or blue, but these levels are mapped
- directly to the bytes written to the screen. The effect of this can be
- seen by displaying the image in greytones (see Miscellaneous.Options).
- The 'true colour' version can also be applied by using
- Process.RGB filter.Red/Green/Blue.
-
- Process.CMYK separation
- -----------------------
- Works only if you've got 5 (or more) copies of the image (see Options).
- See 'RGB seperation'.
-
- Process.HSV separation
- ----------------------
- Works only if you've got 4 (or more) copies of the image.
- Creates three images showing the values of Hue, Saturation and Value.
- Not really very useful, but someone might find it interesting.
-
- Filters.Noise (weak)
- --------------------
- Noise removing filter. If the two neighbours of a pixel is in the same
- colour, the center pixel becomes that colour too.
-
- Filters.Noise (strong)
- ----------------------
- The center pixel is compared with its neighbours to the left, right, top
- and bottom. If the center pixel is the brightest of these, it becomes the
- average of the four other pixels.
-
- Filters.Average
- ---------------
- Smoothen the image a lot.....
- The center pixels becomes the average of colour of itself and its 8
- neighbours. The kernel looks like this:
- 1 1 1
- 1 1 1
- 1 1 1
-
- Filters.Sharpen
- --------------
- Sharpens the edges in an image.
- Uses the following kernel:
- 0 -1 1
- - 1 5 1
- 0 -1 0
-
- Filters.Smoothen (strong)
- -------------------------
- Doesn't smoothen the image quite as much a 'Average'.
- Uses the following kernel:
- 1 2 1
- 2 4 2
- 1 2 1
-
- Filters.Smoothen (weak)
- -----------------------
- Hardly doesn't smoothen the image at all.
- Uses the following kernel:
- 1 1 1
- 1 24 1
- 1 1 1
-
- Filters.Median
- --------------
- The center pixel becomes the median of the 8 surrounding pixels.
-
- Filters.Vertical edges
- ----------------------
- Detects vertical edges.
- Uses the following kernel:
- 1 0 -1
- 2 0 -2
- 1 0 -1
-
- Filters.Horizontal edges
- ------------------------
- Detects horizontal edges.
- The kernel is simply the transposed of the one used for vertical edges.
-
- Filters.Edges
- -------------
- Detects edges of any orientation.
- Kernel: 2 1 0
- 1 0 -1
- 0 -1 -2
-
- Filters.Minimum
- ---------------
- The minimum of the 9 pixels (the center pixel and its 8 neighbour) is
- found, and this is the new colour of the center pixel.
-
- Filters.Maximum
- ---------------
- As 'Minimum', except it finds the maximum.
-
- Filters.Difference
- ------------------
- My own invention! If the difference between the center pixel and the
- average of the 8 others is larger than the selected colour, the average
- is used, otherwise the pixel is left unchanged.
-
-
- Effects.Scratch
- ---------------
- Gives the impression that the surface of the image was scratched with a
- nail while the paint was still wet.
-
- Effects.Ripple
- --------------
- An old-time favourite of all demo-makers.
- If the 'Double' option is on, a special ripple will be used...
-
- Effects.Trace edges
- -------------------
- If the distance between any of the three colour component (for any two
- adjectant pixels) are greater than the selected minimum distance, the
- pixels are said to lie on an edge and are coloured black (the rest is
- coloured white).
-
- Effects.Mosaic
- --------------
- Select this, then click somewhere in the bottom left corner of the source
- image window, and see what happens. Abort by clicking MENU or ADJUST.
-
- Effects.Pointillise
- -------------------
- Dots, Overlap, Wild : Try them, perhaps you'll like them.
-
- Effects.Twist
- -------------
- Experiment......
-
- Effects.Extend area
- -------------------
- Any white or black area (blob) in the image will be extended by adding a
- new set of white or black pixels all around its border.
-
- Effects.Add noise
- -----------------
- A simple yet effective noise generator. Adds noise to either the source
- or the destination image.
- Higher intensity means more noise, but due to the primitive nature of the
- noise-generator the position of the noisy pixels will rapidly begin to
- repeat themself.
-
- Effects.Cycle bytes
- -------------------
- Adds/subtracts 1 from each byte in source image, and writes the byte to
- the destination image.
-
- If Repeatedly is selected (ticked) the bytes in the destination image
- will be cycled repeatedly until you click MENU.
- Works only in 256 colour modes (for speed reasons).
- If Multi-tasking is selected, the colour cycling will multitask, and
- stops when you click any of the mouse buttons over any window/icon that
- belongs to !Process.
-
- Effects.Mask
- ------------
- Only those pixels that are black on the destination image will be copied
- from the source image, the rest will be left unchanged.
-
- Effects.Mix colours
- -------------------
- Mixes the colours randomly.
-
- Effects.Wheel
- -------------
- Basically, this is just a left-over from the Distort-routine (see More
- tools). You select an area (triangular) and a circle, and 9 copies of the
- triangle are then distorted to fill the circle.
-
- Effects.Squash.Circle
- ---------------------
- Squashed the image to fit inside a circle.
-
- Effects.Squash.Triangle
- -----------------------
- See above. Works with all images.
-
- Effects.Whirl.Whirl
- -------------------
- Hmm, not really that easy to explain, but...
- A kind of rotation. The rotation angle depends on the distance from the
- center fo the image. The routine is quite slow (10000 pixels/second) due
- the the amount of maths that is required.
- The rotation angle increses when you get closer to the center of the
- image.
-
- Effects.Whirl.Son of Whirl
- --------------------------
- Like above, just different!
- The rotation angle decreases when you get closer to the center of the
- image.
-
- Effects.Whirl.Whirl revisited
- -----------------------------
- Like above and the one above that one, but again it's different from
- the other one and from the other other one coz otherwise there wouldn't
- really be any meaning in including this effect or the one above it.
- Has a small bug that causes black rings to occur if the angle is <30.
-
-
- Arithmetic
- ----------
- These options perform arithmetic and logical operations on pairs of
- pixels from the source and destination images. The result is written to
- the destination image as always.
-
- Arithmetic.Source + Dest
- ------------------------
- The destination image becomes the sum of the two images.
-
- Arithmetic.Source - Dest
- ------------------------
- See above.
-
- Arithmetic.Dest - Source
- ------------------------
- See above.
-
- Arithmetic.Source EOR Dest
- --------------------------
- The two pixels are EORed bit by bit.
-
- Arithmetic.Source AND Dest
- --------------------------
- The two pixels are ANDed.
-
- Arithmetic.Source OR Dest
- -------------------------
- The two pixels are ORed.
-
- Arithmetic.Source = Dest
- ------------------------
- The destination pixel becomes white if the source pixel is in the same
- colour as the old destination pixel, otherwise it becomes black.
-
- Arithmetic.Source <> Dest
- -------------------------
- The destination pixel becomes white if the source-pixel is in a different
- colour than the old destination pixel.
-
- Arithmetic.Source < Dest
- ------------------------
- See above.
-
- Arithmetic.Source > Dest
- ------------------------
- See above.
-
- Arithmetic.MAX(Source;Dest)
- ---------------------------
- The new pixel is coloured as the maximum of each of the three colour
- components.
-
- Arithmetic.MIN(Source;Dest)
- ---------------------------
- As 'MAX(Source;Dest)', except it uses the minimum.
-
- Arithmetic.Overlay
- ------------------
- The destination image is used as a RGB-filter for the source image:
- White is transparent, black is non-transparent, red allows red colour to
- pass thru the filter etc.
- Destination RED = (Source RED * Destination RED)/256
-
- Arithmetic.Combine
- ------------------
- The destination image becomes a weighted average of the two images, the
- weight is set in the sub-window to this option.
- The weight is a number from 0-255, and is used like this:
- Dest RED = ((255-Weight) * Source RED + Weight * Dest RED)/255
- Thus weight=0 will copy the source image to the destination image, and
- weight=255 will leave the destination image unaltered.
-
- Arithmetic.ABS(Source - Dest)
- -----------------------------
- See 'Source - Dest'.
-
-
- More tools.Clear
- ----------------
- An easy way of clearing either the source or destination image.
-
- More tools.Flip about X-axis
- ----------------------------
- Flip the source/destination image about the X-axis.
-
- More tools.Flip about Y-axis
- ----------------------------
- Flip the source/destination image about the Y-axis.
-
- More tools.Rotate
- -----------------
- The destination image becomes a rotated copy of the source image.
- Rotation is anti-clockwise, and if an area is selected only that part of
- the image will be rotated.
-
- More tools.Shading.Radial to black
- ----------------------------------
- This generates a radial shading from the selected colour to black. The
- area affected is selected using the usual rubberband-circle. The colour
- outside the circle becomes black (hence the name 'to black'). Note that
- although you select the circle in the source window, the shading will
- appear in the destination image. The reason for this is that this tool
- is meant to be follow by Arithmetic.Overlay to create a shading of the
- whole image.
-
- More tools.Shading.Radial to white
- ----------------------------------
- See above.
-
- More tools.Shading.Radial from black
- ------------------------------------
- See above.
-
- More tools.Shading.Radial from white
- ------------------------------------
- See above.
-
- More tools.Shading.Linear to black
- ----------------------------------
- As the 'More tools.Shading.Radial ....' tools, but performs a linear
- shading.
-
- More tools.Shading.Linear to white
- ----------------------------------
- See above.
-
- More tools.Shading.Use dithering
- --------------------------------
- This toggles whether the shading tools should use dithering to increase
- the number of shade or not. The image quality is greatly improved when
- dithering is ON, but the dithering makes it much harder to process the
- image afterwards.
-
- More tools.Distort triangle
- ---------------------------
- This allows you to specify two triangles and then distort the first one
- to fit into the second one. The triangle will be read from the source
- image, and is written to the destination image.
-
- More tools.Distort quadrangle
- -----------------------------
- Allows you to distort (almost) any four sided shape.
-
- More tools.Smudge
- -----------------
- Basically, this is just RECTANGLE x1,y1,s TO x2,y2, but it looks good
- anyway, doesn't it?
-
- Save image
- ----------
- All images can be saved in the usual way. When you save an image from any
- of the image viewers, the new spritefile becomes the 'last saved image'
- for that particular image viewer, which means that it is this file that
- will be loaded by the 'Reload last' option.
- The images can only be saved as sprites, with or without a palette with
- 256 entries. This format is only understood by Translator, ChangeFSI and
- a few other programs. !Paint in RISC OS 2 doesn't recognise the palette,
- but RISC OS 3 !Paint does.
-
-
- Zoom
- ----
- The images can be shown in any magnification from 10% to 1999%.
-
-
- The other menu that hasn't been mentioned yet
- =============================================
- This menu appears when you click MENU over an image viewer that contains
- neither the source image nor the destination image.
-
- Use as source
- -------------
- Will select the image as the new source image.
-
- Use as destination
- ------------------
- See above.
-
- Copy.Copy from source
- ---------------------
- This entry (and the three entries below) allows you to copy the image to
- either the source or the destination image.
-
- Copy.Copy from destination
- --------------------------
-
- Copy.Copy to source
- -------------------
-
- Copy.Copy to destination
- ------------------------
-
- Reload last
- -----------
- See Misc.Reload last
-
- Save image
- ----------
- See above.
-
- Zoom
- ----
- See above.
-
-
- Known problems, bugs and unfinished things
- ============================================
- The filters doesn't work on the pixels on the edges of the image/selected
- area. This isn't a bug, it was just so much easier and faster to do it that
- way.......
- Redrawing isn't always correct after using the rubberband tools (circle,
- lines, rectangles etc.) outside a selected area.
- The Distort triangle/Distort quadrilateral routine sometimes produces
- really weird results. I haven't yet found out why (or when) but I think it
- has got something to do with the corners of the shape being selected
- clockwise or anti-clockwise.
- The Distort quadrangle doesn't allow shapes where any of the interior
- angles are > 180 (deg.). It doesn't generate an error, it just doesn't give
- the expected result.
- A small bug prevents !Process from displaying some spritefiles if the sprite-
- file header isn't entirely correct, eg. word #3 is invalid, although this
- doesn't cause problems with !Paint.
- The whirl effect-family may fail on very large image or when using very
- small angles.
-
- ------------------------------------------------------------------------------
-
- Henrik Bjerregaard Pedersen
- Stengaards Alle 13 B
- DK-2800 Lyngby
- Denmark
-
- Phone (+45) 42 88 37 56
-